#ifndef FORM1_H
#define FORM1_H

#include <QWidget>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonParseError>
#include <QJsonValue>
#include <QJsonArray>
#include <QByteArray>
#include <QUrl>
#include<QTimer>
#include<QFile>
#include<QPoint>
#include<QMouseEvent>
#include<QEvent>
#include<QDebug>
#include<QPainter>
#include<QPen>
namespace Ui {
class Form1;
}

class Form1 : public QWidget
{
    Q_OBJECT

public:
    explicit Form1(QWidget *parent = nullptr);
    ~Form1();

private slots:
    void on_pushButton_clicked();

    //处理获取外网ip请求的 槽
    void onGetIp(QNetworkReply*);
    //根据ip获取经纬度  处理服务器响应内容
    void onGetCurrentLoc(QNetworkReply*);
    //处理服务器返回地图图片
    void onSendMapRequest();


    void on_q_clicked();

    void on_pushButton_2_clicked();

private:

    //baidu App key
    QString ak="yYSnHDIgAbSRlyktehYXmvlzA0s3eEhX";  //百度地图开发者密钥
    //存储当前主机ip
    QString currentIp;  //当前主机ip
    //经度
    double m_lng;   //经度  longitude
    //纬度
    double m_lat;   //纬度 latitude
    //控制好地图的精度  高清或低清[3-18]
    int m_zoom=12;    //地图缩放等级
    //当前所在的城市
    QString m_city;  //城市
    //地图文件名
    QString m_mapFileName="map.png";
    QTimer m_timer;   //定时器
    QFile mapFile;   //file oject

    //是否按下鼠标按钮
    bool isPress=false;
    //是否释放鼠标按钮
    bool isRelease=false;
    //按下鼠标的坐标点
    QPoint startPoint;  //
    //释放鼠标的坐标点
    QPoint endPoint;
    //x轴距离差
    double mx;
    //y轴距离差
    double my;

    Ui::Form1 *ui;
    QNetworkAccessManager *m_ipManager;  // 用于ip管理
    QNetworkAccessManager *m_locManager;   // 用于查询位置
    //QNetworkAccessManager *m_searchManager;  // 用于搜索位置
    //网络管理对象  发送地图图片
    QNetworkAccessManager *m_mapManager;   //查询地图
    //响应对象 接收地图图片
    QNetworkReply *m_mapReply=NULL;   //响应


    void getIp();

    void getLocation();

    // 发送请求  获取地图图片
    void sendMapRequest();
};








#endif // FORM1_H
